#ifndef __DHT11_H__
#define __DHT11_H__

#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/slab.h>
#include <linux/device.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include <linux/ioport.h>
#include <linux/poll.h>
#include <linux/platform_device.h>
#include <linux/of.h>
#include <linux/of_gpio.h>
#include <linux/interrupt.h>
#include <linux/of_irq.h>
#include <linux/kthread.h>
#include <linux/delay.h>

#define DHT11_NUMBER	5

struct dht11_data{
	uint8_t rh_integer;
	uint8_t rh_decimal;
	uint8_t t_integer;
	uint8_t t_decimal;
};

struct dht11_handle{
	int use_flag;
	int gpio;
	int irq;
	uint32_t irq_flags;
	uint32_t irq_enable;
	wait_queue_head_t wait_queue;
	int transfer_result;			//0正在传输，1成功，2失败
	int edge_count;
	long long edge_time[82];
};

#endif
